home *** CD-ROM | disk | FTP | other *** search
- ///////////////////////////////////////////////////////////////
- //
- // Module : PARTFUNC.PRG
- //
- // Created by SUMMER'93 (c) on Fri Nov 26 14:50:28 1993
- //
- ///////////////////////////////////////////////////////////////
- #include "snj.ch"
- // Last change: MIB 8 Nov 93 3:36 pm
-
- procedure PARTEDIT( top, left, NROWS, MODE ) // Amended by SUMMER93
- // Calls: PARTPRMT PGETSPEC
- // Called By: INVEDIT
- // P A R T E D I T
- // Routine to process Parts Records
- local PARTFUNC, OLDSCR, WIDTH
- // do PARTEDIT with TOP, LEFT, NROWS, MODE
-
-
- save screen to OLDSCR
- PARTFUNC := "PARTUPDAT"
- WIDTH := 38
- PARTPICS( 1 , replicate( "X", 24 ) )
- MPARTSPEC( "P" )
- select PARTLINE
-
- MADD( ( reccount() = 0 ) )
- go top
- do while !GETOUT()
- do PARTPRMT
- dbedit( top, left, top + NROWS - 2, left + WIDTH - 1, PARTFLDS() , ;
- PARTFUNC, PARTPICS() , PARTHDRS() , chr(196 ), chr(179 ), .t., "" )
- enddo
- set color to( COLNORM() )
- set deleted off
- replace FIELD->PLINENO with recno( )all
- set deleted on
- GETOUT( .f. )
- do PGETSPEC
- restore screen from OLDSCR
- return
-
- //********************************************************************
-
- function PARTUPDAT( MODE, FLD_PTR ) // Amended by SUMMER93
- // Calls: QBYESNO QBPROMPT PARTGET PARTPRMT
- // Called By:
- // The following locals have been declared by Summer'93
- // ADDREC CURFLD MEDSTR ACTION
- local SCRBOT, RETVAL, ROWNO, COLNO, ADDREC, CURFLD, MEDSTR, ACTION
-
- ROWNO := row( )
- COLNO := col( )
- SCRBOT := ""
- ADDREC := .f.
- QBKEY( lastkey( ) )
- RETVAL := 1
-
- do case
- case QBKEY() = 27
- QBRESP( "Q" )
- case MODE = 3 .or. MODE = 2 // Empty, past bottom
- MPLINENO( PARTLINE->PLINENO + 1 )
- MADD( .t. )
- keyboard replicate( chr(19 ), FLD_PTR - 1 )
- return 3
- case MODE < 4
- return 1
- //case QBKEY=-2 && F3
- // replace PARTSPEC with "S"
- // QBRESP="I"
- //case QBKEY=-3 && F4
- // replace PARTSPEC with "P"
- // QBRESP="I"
- case QBKEY() = 13
- save screen
- CURFLD := PARTFLDS( FLD_PTR , )
- MEDSTR := PARTLINE->&CURFLD
- set color to( COLFLASH() )
- @ ROWNO, COLNO say MEDSTR picture PARTPICS( FLD_PTR , )
- QBRESP( iif( QBYESNO("Edit this Field?" ) = "Y", "E", "I" ) )
- set color to( COLBRIGHT() )
- restore screen
- case QBKEY() = - 9 // F10
- // ACTION = QBPROMPT("Ignore|Edit|Add|Delete|Restore all|Parts "+chr(29)+" Specialist|Quit|","",6)
- ACTION := QBPROMPT( "Ignore|Edit|Delete|Restore all|Quit|", "", 6 )
- otherwise
- QBRESP( "E" )
- keyboard chr( QBKEY() )
- endcase
-
- set color to( COLBRIGHT() )
-
- do case
- //CASE QBRESP="A" && Add one
- // RETVAL = 3
- case QBRESP() = "D"
- save screen
- CURFLD := PARTFLDS( FLD_PTR , )
- MEDSTR := PARTLINE->&CURFLD
- set color to( COLFLASH() )
- @ ROWNO, COLNO say MEDSTR picture PARTPICS( FLD_PTR , )
- if QBYESNO( "Delete this line?" ) = "Y"
- delete
- endif
- set color to( COLBRIGHT() )
- restore screen
- skip 1
- skip - 1
- keyboard chr( 19 ) + chr( 24 )
- RETVAL := 2
- case QBRESP() = "E" // Normal Selection by CR
- do PARTGET with RETVAL, ROWNO, COLNO, FLD_PTR
- QBRESP( iif( GETOUT() , "Q", " " ) )
- //case QBRESP="P"
- // if MPARTSPEC="P"
- // MPARTSPEC = "S"
- // do QBMESS with "Now Entering Specialist Materials",COLFLASH,5
- // else
- // MPARTSPEC = "P"
- // do QBMESS with "Now Entering Parts",COLFLASH,5
- // endif
- case QBRESP() = "R"
- if QBYESNO( "Restore all deleted lines?" ) = "Y"
- set deleted off
- recall all for deleted( )
- go top
- set color to( COLBRIGHT() )
- RETVAL := 2
- set deleted on
- endif
- otherwise
- GETOUT( .f. )
- endcase
-
- if QBRESP() = "Q"
- GETOUT( ( QBYESNO("Finished editing Parts?" ) = "Y" ) )
- MADD( .f. )
- endif
-
- if !GETOUT()
- do PARTPRMT
- if FLD_PTR > 2
- SCRBOT := replicate( chr(19 ), 3 ) + iif( MADD() , chr(24 ), "" )
- else
- SCRBOT := chr( 4 )
- endif
- keyboard SCRBOT
- endif
- set color to( COLBRIGHT() )
-
- @ 23, 1 clear to 23, 38
-
- return iif( GETOUT() , 0, RETVAL )
-
- //********************************************************************
-
- procedure PARTGET( RETVAL, ROWNO, COLNO, FLD_PTR ) // Amended by SUMMER93
- // Calls: PARTFILL QBREAD
- // Called By: PARTUPDAT
- local GETLIST
- // These locals cover set/get variables where lvalues are needed
- local MPARTDESC, MQTY, MUPRICE
- GETLIST := {}
-
- PARTFILL( )
-
- do case
- case FLD_PTR = 1
- // GET command amended to ...
- MPARTDESC := MPARTDESC()
- @ ROWNO, COLNO get MPARTDESC picture "@S24" ;
- WHEN { || MPARTDESC := MPARTDESC(), .t. } valid { || ;
- MPARTDESC( MPARTDESC ) != NIL }
- do QBREAD with "Enter Description", "" , GETLIST
- // Call amended
- case FLD_PTR = 2
- // GET command amended to ...
- MQTY := MQTY()
- @ ROWNO, COLNO get MQTY picture "99" ;
- WHEN { || MQTY := MQTY(), .t. } valid { || MQTY( MQTY ) != NIL }
- do QBREAD with "Enter Quantity", "" , GETLIST
- // Call amended
- case FLD_PTR = 3
- // GET command amended to ...
- MUPRICE := MUPRICE()
- @ ROWNO, COLNO get MUPRICE picture "9999.99" ;
- WHEN { || MUPRICE := MUPRICE(), .t. } valid { || ;
- MUPRICE( MUPRICE ) != NIL }
- do QBREAD with "Enter Unit Price", "" , GETLIST
- // Call amended
- otherwise
- ?? chr( 7 )
- endcase
-
- if !GETOUT()
- if MPLINENO() > reccount( )
- append blank
- replace FIELD->INVNO with MINVNO() , FIELD->PLINENO with MPLINENO() ;
- , FIELD->PARTSPEC with MPARTSPEC()
- RETVAL := 1
- endif
- do case
- case FLD_PTR = 1
- replace FIELD->PARTDESC with MPARTDESC()
- case FLD_PTR = 2
- replace FIELD->QTY with MQTY() , FIELD->TPRICE with ;
- FIELD->UPRICE * FIELD->QTY
- case FLD_PTR = 3
- replace FIELD->UPRICE with MUPRICE() , FIELD->TPRICE with ;
- FIELD->UPRICE * FIELD->QTY
- endcase
- if MADD()
- MADD( ( lastkey()<> 3 ) ) // PgDn
- endif
- else
- RETVAL := 0
- endif
-
- return
-
- //********************************************************************
-
- procedure PARTPRMT
- // Calls: QBCLMESS
- // Called By: PARTEDIT PARTUPDAT
- // PARTPRMT
- local m
-
- do QBCLMESS
- set color to( COLBRIGHT() )
- m := "Move with " + chr( 24 ) + " & " + chr( 25 ) + ;
- [. Scroll PgUp/PgDn. Exit: ESC. Menu: F10]
- @ QBMSGLIN() , centre( m, 80 )say m
- //M = "Enter Specialist Materials: F3, Parts: F4"
- //@ QBMSGLIN+1,centre(M,80) SAY M
-
- set color to( COLHEAD() )
- @ 2, 0 say iif( MADD() , "Adding ", "Editing" )
- set color to( COLBRIGHT() )
- return
-
- //********************************************************************
-
- function PARTLOAD( PINVNO ) // Amended by SUMMER93
- // Calls:
- // Called By: INVFILL
- // P A R T L O A D
- local status, SELNO
-
- status := 0
-
- select PARTLINE
- zap
-
- SELNO := select( )
- use
-
- select PARTS
- set softseek off
- seek str( PINVNO, 5 )
- if found( )
- copy to PARTLINE while PARTS->INVNO = PINVNO
- status := 2
- endif
- select( SELNO )
- use PARTLINE
-
- return status
-
- //********************************************************************
-
- procedure PARTSAVE( PINVNO ) // Amended by SUMMER93
- // Calls: PARTDEL PARTFILL PARTINFO QBADBLNK
- // Called By: INVSAVE
- local ZAPIT
-
- set deleted off
- do PARTDEL with PINVNO
-
- // Copy the records across
- select PARTLINE
- go top
- do while !eof( )
- PARTFILL( )
- if !deleted( )
- select PARTS
- go top
- if PARTINFO( )
- do QBADBLNK with 50
- go top
- endif
- replace PARTS->PARTDESC with MPARTDESC() , PARTS->INVNO with MINVNO()
- replace PARTS->PARTSPEC with MPARTSPEC() , PARTS->QTY with MQTY()
- replace PARTS->UPRICE with MUPRICE() , FIELD->TPRICE with MTPRICE() ;
- , PARTS->PLINENO with MPLINENO()
- endif
- select PARTLINE
- skip
- enddo
- set deleted on
- MINVNO( PINVNO )
-
- return
-
- //********************************************************************
-
- function PARTFILL
- // Calls:
- // Called By: PARTGET PARTSAVE
-
- if FIELD->INVNO <> 0
- MINVNO( FIELD->INVNO )
- MPLINENO( FIELD->PLINENO )
- MPARTSPEC( FIELD->PARTSPEC )
- endif
- MPARTDESC( FIELD->PARTDESC )
- MTPRICE( FIELD->TPRICE )
- MUPRICE( FIELD->UPRICE )
- MQTY( FIELD->QTY )
-
- return PARTINFO( )
-
- //********************************************************************
-
- function PARTINFO
- // Calls:
- // Called By: PARTSAVE
-
- return FIELD->TPRICE > 0 .or. !empty( FIELD->PARTDESC )
-
- //********************************************************************
-
- function PARTCLEAR
- // Calls:
- // Called By: BODYINIT
-
- MPARTDESC( space( 40 ) )
- MPARTSPEC( "P" )
- MQTY( 0 )
- MTPRICE( 0 )
- MUPRICE( 0 )
- MPLINENO( 0 )
-
- return 0
- //********************************************************************
-
- procedure PARTSHOW( top, left, NROWS ) // Amended by SUMMER93
- // Calls:
- // Called By: INVMAIN INVEDIT INVFIND
- // P A R T S H O W
- // Routine to process Parts Records
- local PARTFUNC, OLDSCR, WIDTH
- // do PARTSHOW with TOP, LEFT, NROWS, MODE
-
-
- PARTFUNC := .t.
- WIDTH := 38
- PARTPICS( 1 , replicate( "X", 15 ) )
-
- select PARTLINE
- go top
- keyboard chr( 27 )
- set color to( COLBRIGHT() )
-
- dbedit( top, left, top + NROWS - 2, left + WIDTH - 1, PARTFLDS() , PARTFUNC, ;
- PARTPICS() , PARTHDRS() , chr(196 ), chr(179 ), .t., "" )
-
- @ 23, 1 clear to 23, 38
-
- set color to( COLNORM() )
-
- return
-
- //********************************************************************
-
- procedure PARTDEL( PINVNO ) // Amended by SUMMER93
- // Calls: QBWIPE
- // Called By: INVDEL PARTSAVE
-
- // Get rid of the old stuff
- select PARTS
-
- set softseek off
- seek str( PINVNO, 5 )
- do while !eof( ).and. PARTS->INVNO = PINVNO
- do QBWIPE
- seek str( PINVNO, 5 )
- enddo
-
- return
-
- //**********************************************************************
-
- procedure PGETSPEC
- // Calls: QBREAD
- // Called By: PARTEDIT
- // Input value for Paints and Materials
- local GETLIST
- // These locals cover set/get variables where lvalues are needed
- local MINSSPEC, MOWNSPEC
- GETLIST := {}
- if MINSTOPAY()
- // GET command amended to ...
- MINSSPEC := MINSSPEC()
- @ 8, 62 get MINSSPEC picture "9999.99" ;
- WHEN { || MINSSPEC := MINSSPEC(), .t. } valid { || ;
- MINSSPEC( MINSSPEC ) != NIL }
- else
- // GET command amended to ...
- MOWNSPEC := MOWNSPEC()
- @ 8, 71 get MOWNSPEC picture "9999.99" ;
- WHEN { || MOWNSPEC := MOWNSPEC(), .t. } valid { || ;
- MOWNSPEC( MOWNSPEC ) != NIL }
- endif
- do QBREAD with "Enter Paints and Materials", "" , GETLIST
- // Call amended
- GETOUT( .f. )
-
- return
- // End of file
-